﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Lyon.Data.ORM.DataBases
{
    /// <summary>
    /// Access文件对象数据库(只支持32位平台)。
    /// </summary>
    public class DataBaseForAccess : OleDataBase, IDataBase
    {
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="fileInfo">Access文件信息。</param>
        public DataBaseForAccess(System.IO.FileInfo fileInfo)
            : base(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", fileInfo.FullName), "@")
        {
            Guard.ArgumentNotNull(fileInfo, "fileInfo");

            if (!fileInfo.Exists)
                throw new ArgumentException("文件“{0}”不存在。");
        }
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="fileInfo">Access文件信息</param>
        /// <param name="password">访问密码</param>
        public DataBaseForAccess(System.IO.FileInfo fileInfo, string password)
            : base(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Database Password={1}", fileInfo.FullName, password), "@")
        {
            Guard.ArgumentNotNull(fileInfo, "fileInfo");
            Guard.ArgumentNotNullOrEmptyString(password, "password");

            if (!fileInfo.Exists)
                throw new ArgumentException("文件“{0}”不存在。");
        }
    }
}
